<script>
    import config from './util/config';
    import _action from './util/_action';


    export default {
        globalData: {
            /** http 服务端地址 */
            http_url: config.http_url,
            /** 静态文件存放地址 */
            static_url: config.static_url,
            /** socket 服务端地址 */
            socket_url: config.socket_url,
            /** socket 连接状态 */
            timer: null
        },
        onLaunch() {
            console.log('App onLaunch');
            let _this = this;
            // #ifdef APP-PLUS
            /** 锁定屏幕方向 */
            plus.screen.lockOrientation('portrait-primary');
            /** 检测升级 */
            plus.runtime.getProperty(plus.runtime.appid, function (info) {
                _this.$httpSend({
                    path: '/im/app/update',
                    data: {
                        appid: info.appid,
                        version: info.version,
                        os:plus.os.name
                    },
                    success(res) {
                        if (res.status) {
                            _action.checkFail();
                            if (plus.os.name === 'Android') {
                                let wgtWaiting = plus.nativeUI.showWaiting("更新开始下载"),
                                    update_url = res.update_url,
                                    downloadTask = uni.downloadFile({
                                        url: update_url,
                                        success: (res) => {
                                            wgtWaiting.close();
                                            if (res.statusCode === 200) {
                                                plus.runtime.install(res.tempFilePath, {}, () => {
                                                    plus.runtime.restart();
                                                }, (e) => {
                                                    uni.showModal({
                                                        content: "update error [" + e.code + "]：" + e.message,
                                                        showCancel: false,
                                                    });
                                                });
                                            } else {
                                                uni.showModal({
                                                    content: "api error update fail!",
                                                    showCancel: false,
                                                });
                                            }
                                        }
                                    });
                                downloadTask.onProgressUpdate((res) => {
                                    wgtWaiting.setTitle('下载中...' + res.progress + '%');
                                });
                            } else {
                                uni.showModal({
                                    content: "APP有新的版本",
                                    showCancel: false,
                                    success: function (res) {
                                        if (res.confirm) {
                                            plus.runtime.openUrl(config.static_url + '/app')
                                        }
                                    }
                                });
                            }
                        }
                    }
                });
            });
            // #endif
        },
        onShow() {
            console.log('App onShow');
            /**
             * @param {Object} res
             * 监听网络变化
             * 如果有网络变化，断开socket，再重新连接
             * 重新获取会话列表数据
             * 如果是在会话界面，再重新获取这个的对话数据
             */
            uni.onNetworkStatusChange(function (res) {
                /** 断开重新再连接，再获取最新数据 */
                console.log('网络状态发生变化',res)
            });
        },
        onHide() {

        }
    }
</script>

<style lang="scss">

    /* #ifndef APP-PLUS-NVUE */
	@import "./uni.scss";

    /** 设置 body 的背景色 */
    page {
        background-color: #F4F5F6;
    }

    /** 导航栏自定义图标样式调整 */
    .uni-page-head .uni-btn-icon {
        min-width: auto !important;
        overflow: inherit !important;
    }

    /* #endif */

    .uni-tabbar {
        display: flex !important;
    }
</style>
